A typical database file consists of a series of rows and columns. Each row has a fixed length and holds the data items for a respective one record. Each column, or field, of the database file holds values for a respective one parameter of a family of parameters. One example of a database file is often described in terms of a file of employee records. Each record includes a number of fields or parameters, such as name, address, age, salary, department, etc.
A readily apparent use of this type of database would be to search or query the database to return employee records where the parameters of each record must meet certain criteria. For example, return the records of employees from departments D82 or D75, who are over 50 years old, and have a salary less than $50,000.00. Each record would be examined in those fields, the logic performed, and made available to the user if all parameters fit the specified values.
Another type of database file that might be characterized as an historical file would consist of a record for each of a series of events or time periods. The fields or parameters would hold values that existed at that time period. The record could represent a day, month, year, etc., and the parameters would hold values of various measured properties. The use described above would still be available to return records where various parameters of a particular record met specified search arguments or criteria.
The use described above involves a search or query that could be characterized as horizontal. That is a plurality of parameters in each horizontal row or record of the file is compared with search arguments. The record returned must have parameters that meet all of the search arguments.
A use of an historical database file that gave rise to the present invention involves a file created for a large number of computer circuits, busses, and registers recording values for thousands of cycles of operation of a computer. Analysis of the file created often requires knowledge of the value of parameters or fields existing during a particular sequence or series of cycles. For example, identify the records where the instruction sequence was ADD,SUBTRACT,DIVIDE and the memory address register had the values 10,20,5.
What is required in the above example is not a horizontal search, but rather a vertical search. The information desired results from a relationship of parameter values in one column of successive records, and not between parameters in one particular record. A typical search or query program for horizontal searching of a database file is not suitable.